define("jquery/placeholder/2.0.8/placeholder-debug", [ "$-debug" ], function(require, exports, module) {
    var jQuery = require("$-debug");
    /*! http://mths.be/placeholder v2.0.8 by @mathias */
    (function(window, document, $) {
        // Opera Mini v7 doesn’t support placeholder although its DOM seems to indicate so
        var isOperaMini = Object.prototype.toString.call(window.operamini) == "[object OperaMini]";
        var isInputSupported = "placeholder" in document.createElement("input") && !isOperaMini;
        var isTextareaSupported = "placeholder" in document.createElement("textarea") && !isOperaMini;
        var prototype = $.fn;
        var valHooks = $.valHooks;
        var propHooks = $.propHooks;
        var hooks;
        var placeholder;
        if (isInputSupported && isTextareaSupported) {
            placeholder = prototype.placeholder = function() {
                return this;
            };
            placeholder.input = placeholder.textarea = true;
        } else {
            placeholder = prototype.placeholder = function() {
                var $this = this;
                $this.filter((isInputSupported ? "textarea" : ":input") + "[placeholder]").not(".placeholder").bind({
                    "focus.placeholder": clearPlaceholder,
                    "blur.placeholder": setPlaceholder
                }).data("placeholder-enabled", true).trigger("blur.placeholder");
                return $this;
            };
            placeholder.input = isInputSupported;
            placeholder.textarea = isTextareaSupported;
            hooks = {
                get: function(element) {
                    var $element = $(element);
                    var $passwordInput = $element.data("placeholder-password");
                    if ($passwordInput) {
                        return $passwordInput[0].value;
                    }
                    return $element.data("placeholder-enabled") && $element.hasClass("placeholder") ? "" : element.value;
                },
                set: function(element, value) {
                    var $element = $(element);
                    var $passwordInput = $element.data("placeholder-password");
                    if ($passwordInput) {
                        return $passwordInput[0].value = value;
                    }
                    if (!$element.data("placeholder-enabled")) {
                        return element.value = value;
                    }
                    if (value == "") {
                        element.value = value;
                        // Issue #56: Setting the placeholder causes problems if the element continues to have focus.
                        if (element != safeActiveElement()) {
                            // We can't use `triggerHandler` here because of dummy text/password inputs :(
                            setPlaceholder.call(element);
                        }
                    } else if ($element.hasClass("placeholder")) {
                        clearPlaceholder.call(element, true, value) || (element.value = value);
                    } else {
                        element.value = value;
                    }
                    // `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363
                    return $element;
                }
            };
            if (!isInputSupported) {
                valHooks.input = hooks;
                propHooks.value = hooks;
            }
            if (!isTextareaSupported) {
                valHooks.textarea = hooks;
                propHooks.value = hooks;
            }
            $(function() {
                // Look for forms
                $(document).delegate("form", "submit.placeholder", function() {
                    // Clear the placeholder values so they don't get submitted
                    var $inputs = $(".placeholder", this).each(clearPlaceholder);
                    setTimeout(function() {
                        $inputs.each(setPlaceholder);
                    }, 10);
                });
            });
            // Clear placeholder values upon page reload
            $(window).bind("beforeunload.placeholder", function() {
                $(".placeholder").each(function() {
                    this.value = "";
                });
            });
        }
        function args(elem) {
            // Return an object of element attributes
            var newAttrs = {};
            var rinlinejQuery = /^jQuery\d+$/;
            $.each(elem.attributes, function(i, attr) {
                if (attr.specified && !rinlinejQuery.test(attr.name)) {
                    newAttrs[attr.name] = attr.value;
                }
            });
            return newAttrs;
        }
        function clearPlaceholder(event, value) {
            var input = this;
            var $input = $(input);
            if (input.value == $input.attr("placeholder") && $input.hasClass("placeholder")) {
                if ($input.data("placeholder-password")) {
                    $input = $input.hide().next().show().attr("id", $input.removeAttr("id").data("placeholder-id"));
                    // If `clearPlaceholder` was called from `$.valHooks.input.set`
                    if (event === true) {
                        return $input[0].value = value;
                    }
                    $input.focus();
                } else {
                    input.value = "";
                    $input.removeClass("placeholder");
                    input == safeActiveElement() && input.select();
                }
            }
        }
        function setPlaceholder() {
            var $replacement;
            var input = this;
            var $input = $(input);
            var id = this.id;
            if (input.value == "") {
                if (input.type == "password") {
                    if (!$input.data("placeholder-textinput")) {
                        try {
                            $replacement = $input.clone().attr({
                                type: "text"
                            });
                        } catch (e) {
                            $replacement = $("<input>").attr($.extend(args(this), {
                                type: "text"
                            }));
                        }
                        $replacement.removeAttr("name").data({
                            "placeholder-password": $input,
                            "placeholder-id": id
                        }).bind("focus.placeholder", clearPlaceholder);
                        $input.data({
                            "placeholder-textinput": $replacement,
                            "placeholder-id": id
                        }).before($replacement);
                    }
                    $input = $input.removeAttr("id").hide().prev().attr("id", id).show();
                }
                $input.addClass("placeholder");
                $input[0].value = $input.attr("placeholder");
            } else {
                $input.removeClass("placeholder");
            }
        }
        function safeActiveElement() {
            // Avoid IE9 `document.activeElement` of death
            // https://github.com/mathiasbynens/jquery-placeholder/pull/99
            try {
                return document.activeElement;
            } catch (exception) {}
        }
    })(this, document, jQuery);
});
